#!/bin/sh

die () { echo "$@" ; cleanup ; exit 1; }
setup() {
  cleanup
  mkdir -p tmp_nvm_find_up/a/b/c/d
  touch tmp_nvm_find_up/test
  touch tmp_nvm_find_up/a/b/c/test
}
cleanup () {
  rm -rf tmp_nvm_find_up
}

\. ../../../nvm.sh

setup

TEST_DIR="$PWD"

[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up" ] || die "failed to find 1 dir up"
[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up" ] || die "failed to find 2 dirs up"
[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b/c nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up/a/b/c" ] || die "failed to find in current dir"
[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b/c/d nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up/a/b/c" ] || die "failed to find 1 level up from current dir"
[ "~$(PWD="." nvm_find_up 'test')" = "~." ] || die "failed to handle '.' output from pwd"

cleanup
